const koa = require('koa');
const app = new koa();
const ejs = require('ejs');
const views = require('koa-views');
// 注意：引入的方式 要运行
const router = require('koa-router')();

const {htmlTpl, ejsTpl} = require('./tpl');

app.use(views('views',{extension:'ejs'}));

app.use(async (ctx,next)=>{
    // ctx.type = 'text/html; charset=utf-8';
    // 静态html
    // ctx.body = htmlTpl;
    // ejs传递变量
    // ctx.body = ejs.render(ejsTpl, {title: 'ejs 模版引擎'})
    ctx.state = {
        userName:'张三'
    };
    await next()
});

router.get('/',async (ctx)=>{
    let title = '你好ejs';
    let list = ['哈哈','嘻嘻','看看','问问'];
    let content = "<h2>这是一个h2</h2>";
    let num = 10;
    await ctx.render('index',{
        title,list,content,num
    });
});

app.use(router.routes());
// 作用:这是官方文档的推荐用法,我们可以看到 router.allowedMethords() 用在 router.routes() 之后,
// 所有,在当所有的路由中间件最后使用.此时根据 ctx.status 设置 response 响应头
app.use(router.allowedMethods());

app.listen(4444, ()=>{
    console.log('http://localhost:4444')
});
